package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 流程业务对象 lc_process_old
 *
 * @author ruoyi
 * @date 2023-07-25
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class LcProcessOldBo extends BaseEntity {

    /**
     * id
     */
    @NotNull(message = "id不能为空", groups = { EditGroup.class })
    private Long processId;

    /**
     * 流程编号
     */
    @NotBlank(message = "流程编号不能为空", groups = { EditGroup.class })
    private String processNo;

    /**
     * 流程名称
     */
    @NotBlank(message = "流程名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processName;

    /**
     * 流程版本
     */
    @NotBlank(message = "流程版本不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processVersion;

    /**
     * 所在业务分类id
     */
    @NotNull(message = "所在业务分类id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long businessTypeId;

    /**
     * 所在业务分类id
     */
    @NotBlank(message = "所在业务分类id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String businessTypeIds;

    /**
     * 所在业务分类名称
     */
    @NotBlank(message = "所在业务分类名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String businessTypeName;

    /**
     * 主办部门id
     */
    @NotNull(message = "主办部门id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long hostDeptId;

    /**
     * 主办部门id
     */
    @NotBlank(message = "主办部门id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String hostDeptIds;

    /**
     * 主办部门名称
     */
    @NotBlank(message = "主办部门名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String hostDeptName;

    /**
     * 责任部门职责
     */
    @NotBlank(message = "责任部门职责不能为空", groups = { AddGroup.class, EditGroup.class })
    private String responsibilityDeptValue;

    /**
     * 基层单位职责
     */
    @NotBlank(message = "基层单位职责不能为空", groups = { AddGroup.class, EditGroup.class })
    private String grassrootsDeptValue;

    /**
     * 横向部门职责
     */
    @NotBlank(message = "横向部门职责不能为空", groups = { AddGroup.class, EditGroup.class })
    private String transverseDeptValue;

    /**
     * 流程说明
     */
    @NotBlank(message = "流程说明不能为空", groups = { AddGroup.class, EditGroup.class })
    private String description;

    /**
     * 流程审批状态(0:待提交 1:初始化完成 2:审批通过 3:审批不通过)
     */
    @NotNull(message = "流程审批状态(0:待提交 1:初始化完成 2:审批通过 3:审批不通过)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer processAuditType;

    /**
     * 流程表关联的id
     */
    @NotBlank(message = "流程表关联的id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String modelId;

    /**
     * 状态（0正常 1停用）
     */
    @NotBlank(message = "状态（0正常 1停用）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 父级id
     */
    @NotNull(message = "父级id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long parentId;

    /**
     * 系统名称
     */
    @NotBlank(message = "系统名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String systemName;

    /**
     * 系统地址
     */
    @NotBlank(message = "系统地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String systemUrl;

    /**
     * 制度
     */
    @NotBlank(message = "制度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String institution;

    private Date initiateTime;


    private String processImageUrl;


}
